﻿// using System.Net.Http.Json;
// using Admin.CommonLib.Constants;
// using Admin.CommonLib.Models.Job;
// using Newtonsoft.Json;
// using Swimj.CommonLib.Base;
// using Swimj.Core.Extensions;
//
// namespace Admin.RazorLib.Services
// {
//     public class JobService : IJobService
//     {
//         private readonly IHttpClientFactory _httpClientFactory;
//
//         public JobService(IHttpClientFactory httpClientFactory)
//         {
//             _httpClientFactory = httpClientFactory;
//         }
//
//         public async Task<PaginatedResult<JobDetailInfoResponseDto>> QueryJobsByPage(JobDetailSearchRequestDto model)
//         {
//             try
//             {
//                 var httpClient = _httpClientFactory.CreateClient("adminApi");
//                 var response =
//                     await httpClient.GetAsync(model.ToQueryString(ApiRoutes.Job.QueryJobs));
//                 if (response.IsSuccessStatusCode)
//                 {
//                     var resultJson = await response.Content.ReadAsStringAsync();
//
//                     if (!string.IsNullOrEmpty(resultJson))
//                     {
//                         return JsonConvert.DeserializeObject<PaginatedResult<JobDetailInfoResponseDto>>(resultJson);
//                     }
//                 }
//
//                 return null;
//             }
//             catch (Exception e)
//             {
//                 Console.WriteLine(e);
//                 throw;
//             }
//         }
//
//         public async Task<Result<JobDetailInfoResponseDto>> UpdateJob(Guid key, JobDetailEditRequestDto model)
//         {
//             try
//             {
//                 var httpClient = _httpClientFactory.CreateClient("adminApi");
//                 var response = await httpClient.PutAsJsonAsync($"/{ApiRoutes.Job.UpdateJob.Replace("{id}", key.ToString())}", model);
//                 if (response.IsSuccessStatusCode)
//                 {
//                     var resultJson = await response.Content.ReadAsStringAsync();
//
//                     if (!string.IsNullOrEmpty(resultJson))
//                     {
//                         return JsonConvert.DeserializeObject<Result<JobDetailInfoResponseDto>>(resultJson);
//                     }
//                 }
//
//                 return new Result<JobDetailInfoResponseDto>();
//             }
//             catch (Exception e)
//             {
//                 Console.WriteLine(e);
//                 throw;
//             }
//         }
//
//         public async Task<Result<JobDetailInfoResponseDto>> CreateJob(JobDetailEditRequestDto model)
//         {
//             try
//             {
//                 var httpClient = _httpClientFactory.CreateClient("adminApi");
//                 var response = await httpClient.PostAsJsonAsync($"/{ApiRoutes.Job.CreateJob}", model);
//                 if (response.IsSuccessStatusCode)
//                 {
//                     var resultJson = await response.Content.ReadAsStringAsync();
//
//                     if (!string.IsNullOrEmpty(resultJson))
//                     {
//                         return JsonConvert.DeserializeObject<Result<JobDetailInfoResponseDto>>(resultJson);
//                     }
//                 }
//
//                 return new Result<JobDetailInfoResponseDto>();
//             }
//             catch (Exception e)
//             {
//                 Console.WriteLine(e);
//                 throw;
//             }
//         }
//
//         public async Task<Result<JobDetailInfoResponseDto>> GetJob(Guid key)
//         {
//             try
//             {
//                 var httpClient = _httpClientFactory.CreateClient("adminApi");
//                 var response = await httpClient.GetAsync($"/{ApiRoutes.Job.UpdateJob.Replace("{id}", key.ToString())}");
//                 if (response.IsSuccessStatusCode)
//                 {
//                     var resultJson = await response.Content.ReadAsStringAsync();
//
//                     if (!string.IsNullOrEmpty(resultJson))
//                     {
//                         return JsonConvert.DeserializeObject<Result<JobDetailInfoResponseDto>>(resultJson);
//                     }
//                 }
//
//                 return null;
//             }
//             catch (Exception e)
//             {
//                 Console.WriteLine(e);
//                 throw;
//             }
//         }
//     }
// }